// 浏览器前进后退功能
// 1. 面向对象模块化 思想、
   // 一个文件就写一个类
   //2. 引入其他模块
   const {stackBasedLinkedList}=require('./stackBaseOnLinkedList');
   console.log(stackBasedLinkedList)
class browser{
    constructor(){
     this.normalStack=new stackBasedLinkedList();
     this.backStack=new stackBasedLinkedList();
    }
    pushNormal(name){
        this.normalStack.push(name);// 浏览网站入栈
         this.backStack.clear(); //abc b->c  c丢失
         this.dispalyAllStack();
    }
    dispalyAllStack(){
        console.log('----后退页面----');
        this.backStack.display();
        console.log('----浏览页面-----');
        this.normalStack.display();
    }
    back(){
        const value=this.normalStack.pop();
        if(value!== -1){
            this.backStack.push(value);
            this.dispalyAllStack();        }
            else{
                console.log('无法后退');
            }
// normalStack pop
// backStack push
// 边界
    }
    front(){
     const value=this.backStack.pop();
     if(value!==-1){
         this.normalStack.push(value);
         this.dispalyAllStack();
     }
     else{
         console.log('无法前进');
     }
     // 边界
    }
}
let b=new browser();
b.pushNormal('www.google.com');
b.pushNormal('www.baidu.com');
b.pushNormal('www.github.com');
b.back();
b.back();
b.front();
b.pushNormal('www.tmall.com');